/**
 * Copyright (c) 2006 Amgad S Youssef
 * All Rights Reserved.
 * Licensed under the Eclipse Public License - v 1.0
 * For more information see http://www.eclipse.org/legal/epl-v10.html
 */
package org.eclipsejcde.core.launchers;

import org.eclipse.core.runtime.IStatus;

/**
 * @author Amgad S Youssef
 *
 */
public interface ILauncher {
	public static final int LAUNCH_MODE_RUN = 1;

	public static final int LAUNCH_MODE_DEBUG = 2;

	public static final int DELETE_MODE_DO_NOT_DELETE = 1;

	public static final int DELETE_MODE_DELETE_AFTER_LAUNCH = 2;

	public static final int DELETE_MODE_DELETE_AFTER_TERMINATE = 3;

	public IStatus launch(String arguments);

	public IStatus launch(String arguments, String launchConfigurationName);

	public IStatus launch(String arguments, String launchConfigurationName, int deleteMode);

	public IStatus launch(String arguments, String launchConfigurationName, boolean waitForTerminatedSignal, int deleteMode);

	public IStatus launch(String arguments, String launchConfigurationName, int launchMode, int deleteMode);

	public IStatus terminate();

	public boolean isTerminated();

}
